Method and implementation for message-driven job processing

ABSTRACT

A method and implementation for job managing is disclosed which enables the creating of a job in a client system and sending a job creation instruction message to a job manager to notify that a new job has entered a processing queue. At least one processing message is sent from the job manager to at least one respective component. A first job state change message is sent from the respective component to the job manager to notify the job manager when the component begins to process a given job. A second job state change message is sent to the job manager from the component to notify the job manager when the component is done processing the given job.

BACKGROUND OF THE INVENTION

[0001] In a network, it is common to process jobs, e.g. printing jobs, in a queue. Jobs are assigned a position in the queue and a network device, e.g. a network printer, processes each of the jobs in a predetermined order. Fort example, the jobs can be processed in the order they have been received. Also, the jobs can be processed in accordance with priority, with high priority jobs being given preference.

[0002] In a network, the operation of the queue can be implemented in a number of different ways. In one common previous-type method of processing jobs in a queue, the system constantly loops through all the jobs in the queue to insure that the jobs are being processed quickly. However, this method requires that the queue be monitored at all time, even when no jobs are awaiting processing. This approach therefore uses up lots of CPU time by monitoring the queue at all times, and therefore inefficiently manages system resources.

[0003] In another previous-type method of job processing, a “daemon” process can be implemented that “wakes up” in predefined time intervals and processes any jobs that are waiting in the queue. While this method puts less demand on the CPU, it suffers from the drawback that jobs may sit idle for an undesirable period of time until the daemon process wakes up to service the waiting jobs. In this way, this approach is inefficient at managing the performance of the system.

SUMMARY OF THE INVENTION

[0004] The difficulties and drawbacks of the previous-type approaches are resolved by the method and implementation for job managing of the present invention which enables the creation of a job in a client system and sending a job creation instruction message to a job manager to notify that a new job has entered a processing queue. At least one processing message is sent from the job manager to at least one respective component. A first job state change message is sent from the respective component to the job manager to notify the job manager when the component begins to process a given job. A second job state change message is sent to the job manager from the component to notify the job manager when the component is done processing the given job.

[0005] As will be realized, the invention is capable of other and different embodiments and its several details are capable of modifications in various respects, all without departing from the invention. Accordingly, the drawing and description are to be regarded as illustrative and not restrictive.

BRIEF DESCRIPTION OF THE DRAWINGS

[0006]FIG. 1 is a block diagram showing the process flow of the job manager in accordance with the present invention.

DETAILED DESCRIPTION OF THE INVENTION

[0007] The present invention includes a job manager that ensures continuous and timely attendance to the jobs in the queue. In the present method and implementation, as particularly shown in FIG. 1, a job (e.g. a printing job) is created by a client system, and a job creation instruction message is sent to the job manager to notify that a new job has entered the queue. The message can be sent and received using any type of conventional messaging system. The job manager then sends processing messages to one or more components that are assigned to process the jobs in the queue for each specific client. A job state change message is sent from a component to the job manager to notify the job manager when the component begins to process a given job. Another job state change message is sent to the job manager from the component to notify the job manager when the component is done processing the given job.

[0008] Any “job create” and “job state change” message to the job manager will cause the job manager to process all the jobs in the queue. As long as components continue to process of their respective jobs and notify job manager of their progress the jobs in the queue will be processed. If the processing of a job is interrupted for any reason, e.g. if a printer runs out of paper, an “interrupt” message is sent from the component to the job manager, who then reports the interruption to a user or system administrator. All other jobs in the queue will be processed normally.

[0009] To ensure communication continuity between the job manager and other components, the job manager will receive a message from a thread within its process based on a configurable amount of time (T). This message will cause the job manager to process all the jobs in the queue if the current time (CT) minus T is greater than the last time (LT) when the job manager received a “job create” or a “state change” message. The above condition can also be written as: job processing if ((CT−T)>LT).

[0010] As described hereinabove, the present invention solves many problems associated with previous type devices. However, it will be appreciated that various changes in the details, materials and arrangements of parts which have been herein described and illustrated in order to explain the nature of the invention may be made by those skilled in the area within the principle and scope of the invention will be expressed in the appended claims. 

I claim:
 1. A method for job managing comprising: creating a job in a client system, sending a job creation instruction message to a job manager to notify that a new job has entered a processing queue; sending at least one processing message from the job manager to at least one respective component; sending a first job state change message from the respective component to the job manager to notify the job manager when the component begins to process a given job; sending a second job state change message to the job manager from the component to notify the job manager when the component is done processing the given job.
 2. The method of claim 1 wherein receipt of one of a job creation message and a job state change message by the job manager will cause the job manager to process all the jobs in the queue.
 3. The method of claim 1 wherein if processing of the job is interrupted, an “interrupt” message is sent from the component to the job manager, who then reports the interruption to one of a user and a system administrator.
 4. The method of claim 1 wherein, upon receipt of a message with a configurable interval of time (T), the job manager will process any jobs in the queue if the current time (CT) minus T is greater than the last time (LT) when the job manager received a “job create” or a “state change” message such that ((CT−T)>LT).
 5. The method of claim 1 wherein the job is a printing job and the respective component for completing the job is a network printer.
 6. The method of claim 1 wherein a respective component is assigned to process jobs in the queue for each respective client.
 7. The method of claim 1 wherein the messages are sent and received using any type of conventional messaging system.
 8. A job manager comprising: an implementation for creating a job in a client system, an implementation for sending a job creation instruction message to a job manager to notify that a new job has entered a processing queue; an implementation for sending at least one processing message from the job manager to at least one respective component; an implementation for sending a first job state change message from the respective component to the job manager to notify the job manager when the component begins to process a given job; an implementation for sending a second job state change message to the job manager from the component to notify the job manager when the component is done processing the given job.
 9. The job manager of claim 8 further comprising an implementation wherein receipt of one of a job creation message and a job state change message by the job manager will cause the job manager to process all the jobs in the queue.
 10. The job manager of claim 8 further comprising an implementation wherein if processing of the job is interrupted, an “interrupt” message is sent from the component to the job manager, who then reports the interruption to one of a user and a system administrator.
 11. The job manager of claim 8 further comprising an implementation wherein, upon receipt of a message with a configurable interval of time (T), the job manager will process any jobs in the queue if the current time (CT) minus T is greater than the last time (LT) when the job manager received a “job create” or a “state change” message such that ((CT−T)>LT).
 12. The job manager of claim 8 wherein the job is a printing job and the respective component for completing the job is a network printer.
 13. The job manager of claim 8 wherein a respective component is assigned to process jobs in the queue for each respective client.
 14. The job manager of claim 8 wherein any type of conventional messaging system is employed for sending and receiving messages. 